a = 1  # 意即将数据 1 的地址保存至变量 a 的地址中，这个过程称作引用
print(id(a))
b = a  # 意即将变量 a 的引用保存至变量 b 的地址中
print(id(b))
a = 10  # 意即将数据 10 的地址保存至变量 a 的地址中，此时引用再一次变化
print(id(a))  # 所以这行代码的输出必然改变
print(id(b))  # 而这行代码的输出和第四行的代码输出仍然一致，意即引用还未改变
# 实际上，可以简单理解为：当出现赋值符号时，意味着 = 左边的地址会从未知变为 = 右边的数据的地址，
# 此时，= 左边的指向 = 右边的数据，若 = 右边已经引用了，则赋值后相当于将 = 右边的引用再引用给 = 左边的
# 那么，此时 = 左边的也会指向最开始引用的 = 右边的数据
c = 1
print(id(c))
print(b is c)  # 当引用一致时，两者就是同一个数据，使用 is 判断输出 True
